#include <stdio.h>
#include<stdlib.h>
typedef  char BTDataTypde;
typedef struct BTree
{
    struct BTree*left;
    struct BTree*right;
    BTDataTypde data;
} BT;

BT* Creat(BTDataTypde*a,int *i)
{
    if(a[*i]=='#')
    {
        (*i)++;
        return NULL;
    }
    BT*root=(BT*)malloc(sizeof(BT));
    if(root==NULL)
    {
        perror("malloc fail");
        return NULL;
    }
    root->data=a[*i];
    (*i)++;
    root->left=Creat(a, i);
    root->right=Creat(a, i);
    return root;
}
void Inorder(BT*root)
{
    if(root==NULL)
    return ;
   
    Inorder(root->left); 
    printf("%c ",root->data);
    Inorder(root->right);
}

int main()
{
    char str[100];
    scanf("%s",str);
    int i=0;
    BT*root=Creat(str, &i);
    Inorder(root);
    return 0;

}
